package pe.edu.upc.dew.Grupo1.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import pe.edu.upc.dew.Grupo1.model.Funcion;

public class FuncionDaoJdbc extends SimpleJdbcDaoSupport implements FuncionDao{

	@Override
	public void insert(Funcion funcion) {
		getSimpleJdbcTemplate().update("insert into funcion(CodigoFuncion,Horario,CodigoSala,CodigoPelicula) values(?,?,?,?)",
				funcion.getCodigoFuncion(),funcion.getHorario(),funcion.getSala().getCodigoSala(),funcion.getCodigoPelicula());
	}

	@Override
	public Funcion getFuncionPorCodigo(int codigo) {
		return getSimpleJdbcTemplate().
		queryForObject("select CodigoFuncion,Horario,CodigoSala,CodigoPelicula,Estado from `funcion` where CodigoFuncion = ?", 
				new FuncionRowMapper(), codigo);
	}

	@Override
	public void deleteFuncionPorCodigo(int codigo) {
		getSimpleJdbcTemplate().update("delete from `funcion` where CodigoFuncion=?",codigo);
	}

	@Override
	public void updatePorCodigo(Funcion funcion) {
		getSimpleJdbcTemplate().
		update("update `funcion` set Horario=?,CodigoSala=?,CodigoPelicula=?,Estado=? where CodigoFuncion=?", 
				funcion.getHorario(),funcion.getSala().getCodigoSala(),funcion.getCodigoPelicula(),funcion.getEstado(),funcion.getCodigoFuncion());
	}

	@Override
	public List<Funcion> getFuncionesPorPelicula(int codigoPelicula) {
		return getSimpleJdbcTemplate().
		query("select CodigoFuncion,Horario,CodigoSala,CodigoPelicula,Estado from `funcion` where CodigoPelicula=?", 
				new FuncionRowMapper(),codigoPelicula);
	}

	@Override
	public int getConteoFunciones() {
		return getSimpleJdbcTemplate().queryForInt("select count(*) from `funcion`");
	}

}
